// https://zhuanlan.zhihu.com/p/1973166704931657240  参考数学化简过程

/* 数学推导：
设第i个小朋友收到：a_i个小糖果，b_i个大糖果。
则满足以下条件：
数量约束：a_i + b_i = A_i
重量约束：a_i * X + b_i * Y = W（对所有小朋友，W相同）
由上述约束可得：
(A_i - b_i) * X + b_i * Y = W
A_i * X + b_i * (Y - X) = W
令 d = Y - X 则：
b_i = (W - A_i * X) / d

为了使是有效的分配（非负整数且不超过A_i），必须满足：
W满足：A_i * X ≤ W ≤ A_i * Y，即要在每个人的重量区间内。
W ≡ A_i * X (mod d)，即所有W的余数必须相同。
*/

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
ll A[200005]; // 存储每个人的糖果数量A_i

int main() {
  ll n, X, Y;
  cin >> n >> X >> Y; // 输入人数n，小糖果重量X，大糖果重量Y

  ll d = Y - X; // 两种糖果的重量差值d = Y - X

  // 初始化重量交集范围：W_min为最小可能总重量，W_max为最大可能总重量
  // 根据数学推导：A_i * X ≤ W ≤ A_i * Y
  ll W_min = 0, W_max = 1e18;

  // [W_min, W_max]是所有人重量的交集
  // 对于每个人i，W必须在区间[A_i*X, A_i*Y]内
  for (int i = 1; i <= n; i++) {
    cin >> A[i]; // 输入第i个人的糖果数量A_i
    // 更新最小总重量：取所有A_i*X的最大值
    W_min = max(W_min, X * A[i]);
    // 更新最大总重量：取所有A_i*Y的最小值
    W_max = min(W_max, Y * A[i]);
  }

  // 数学推导：由约束条件可得：
  // 设第i个人有a_i个小糖果，b_i个大糖果
  // 数量约束：a_i + b_i = A_i
  // 重量约束：a_i * X + b_i * Y = W
  // 代入得：(A_i - b_i) * X + b_i * Y = W
  // 化简：A_i * X + b_i * (Y - X) = W
  // 即：A_i * X + b_i * d = W
  // 所以：b_i = (W - A_i * X) / d

  // 根据同余关系：W ≡ A_i * X (mod d)
  // 即所有人的W模d的余数必须相同
  ll r = A[1] * X % d; // 取第一个人的余数作为基准

  // 计算在交集范围内最大的W，使得W ≡ r (mod d)
  // 选择最大的W是为了最小化总的大糖果数量（因为b_i = (W - A_i*X)/d）
  ll k = (W_max - r) / d; // 计算最大可能的倍数k
  ll W = k * d + r;       // 算出[W_min, W_max]内最大的W，使得W % d = r

  // 检查是否存在有效解
  if (W_min > W_max || W < W_min) { // 如果无交集或W不在交集内
    cout << -1;                     // 输出无解
    return 0;
  }

  ll total_b = 0; // 初始化答案（需要的大糖果总数量b_total）

  // 验证每个人的重量模数是否一致，并计算总大糖果数量
  for (int i = 1; i <= n; i++) {
    // 检查同余条件：W ≡ A_i * X (mod d) 必须对所有i成立
    // 正确的验证：W % d == A_i * X % d
    if (W % d != A[i] * X % d) { // 如果不同余，则无解
      //  相比作者写法  if (A[i] * X % d != r)   我的更直观些
      cout << -1;
      return 0;
    }
    // 计算第i个人需要的大糖果数量b_i
    // 根据公式：b_i = (W - A_i * X) / d
    total_b += (W - A[i] * X) / d;
  }

  cout << total_b; // 输出总的大糖果数量
  return 0;
}